package com.sky.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
@Slf4j
public class RedisConfigration {

    /**
     * 创建redisTemplate对象
     * 注意：redisTemplate的泛型是String,Object，因为redis的key一定是字符串，value可以是任意类型
     * 这里这个模板配置类其实可以不创建，因为Spring Starter已经帮我们创建了，这里是为了自己设置序列化器
     * @param factory
     * @return
     */
    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory factory){
        log.info("创建redis模板对象");
        RedisTemplate<String,Object> template = new RedisTemplate<>();  //创建redisTemplate对象
        template.setConnectionFactory(factory); //设置连接工厂
        //设置序列化器
        template.setKeySerializer(new StringRedisSerializer()); //字符串的序列化器
//        template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
        return template;
    }
}
